One conventional method for preventing unauthorized use of software on a processing device is to require a special device, such as, for example, a Universal Serial Bus (USB) dongle or memory key, to be connected to the processing device. The software may be permitted to execute on the processing device only when the special device is connected to the processing device.
Typically, such a special device is manufactured by only a few vendors, has a relatively high cost, and should be distributed with the software. Further, use of such a special device to prevent unauthorized use of software is problematic with respect to electronically distributed software.